
import util from "/common/js/util.js";
var app = getApp();
Component({
  mixins: [],
  data: {
    active: false, //组件是否激活，
    changevalue: "", //搜索框同步
    oldvalue: "", //数据回滚
    changes: false, //正在搜索
    vlist: [] //搜索框查询的列表
  },
  props: {
    			// 是否禁用
			disabled: false,
			// 层级
			zindex: 999,
			// 数据列表
			options: [],
			// 是否加载中
			loading: false,
			// 加载提示文字
			loadingText: '数据加载中……',
			// input字段名
			name: '',
			// 默认展示value值
			value: '',
			// 无选项时展示文字
			placeholder: '请选择',
			// 自定义列表中键值对应关系label
			slabel: 'label',
			// 自定义列表中键值对应关系 value
			svalue: 'value',
      onInput:function onInput(e){},
      onSelectitem :function onSelectitem(e){},
  },
  didMount() {
    this.itemcheck();
  },
  didUpdate() {},
  didUnmount() {},
  methods: {
			/**
			 * 判断数组及当前active值
			 */
			itemcheck() {
				// 此处判断是否有初始value,存在则判断显示文字
				if (this.props.value != "") {
          this.setData({
            changevalue: this.props.value
          })
					// 展示plachhoder
					//判断数组
					if (this.props.options.length > 0) {
						this.props.options.forEach(item => {
							if (this.props.value == item[this.props.svalue]) {
								//this.oldvalue = this.changevalue = item[this.props.slabel];
                this.setData({
                  oldvalue:item[this.props.slabel],
                  changevalue:item[this.props.slabel]
                })
								return;
							}
						})
					}
				} else {
          this.setData({
            oldvalue:"",
            changevalue:""
          })
				}
			},
			/**
			 * 点击组件
			 */
			select() {
				if (this.props.disabled) {
					return;
				}
        let active=this.data.active;
        this.setData({
          active :!active
        })
				if (this.data.active) {
          this.setData({
            changes:false
          })
				//	this.changes = false;
				} else {
				}
			},
			/**
			 * 获得焦点
			 */
			unifocus() {
				if (this.props.disabled) {
					return
				};
        this.setData({
          active:true,
          changes:false
        })

			},
			/**
			 * 移除数据
			 */
			removevalue() {
				
        this.setData({
          changevalue:"",
          changes:false
        })
			},
			/**
			 * value值改变
			 */
			intchange(e) {
			//	this.$emit("input", e)
        util.debounce(()=>{
          this.props.onInput(e.detail.value);
         
          let changes=false;
          if (this.data.changevalue == '') {
            changes = false;
            return;
          };
          this.setData({
            changevalue:e.detail.value
          })
          changes = true;
          this.setData({
            changes
          })
           
        },300)
        
			},
			/** 点击组件列
			 * @param {Object} index 索引
			 * @param {Object} item	值
			 */
			selectitem(e) {
				//console.log(item)
				// this.active = false;
				// this.changevalue=item[this.props.slabel];
        let index=e.currentTarget.dataset.index;
        let item=this.props.options[index];
			  this.setData({
          active:false,
          changevalue:item[this.props.slabel]
        })
        this.props.onSelectitem(index, item);
			}
  },
});
